package com.example.design_pattern.singleton;

/**
 * 懒汉式
 * @author: _先森
 */
public class Singleton2 {
    private Singleton2() {
    }
    private static Singleton2 instance=null;
    public  static Singleton2 getInstance(){
        if (instance==null){
                instance=new Singleton2();
            }
        return instance;
    }
//    方式一 通过同步代码块方式实例化
//    public  static Singleton2 getInstance(){
//        synchronized (Singleton2.class){
//            if (instance==null){
//                instance=new Singleton2();
//            }
//        }
//        return instance;
//    方式二 通过方法给实例化方法填加同步锁
//        public synchronized static Singleton2 getInstance(){
//                if (instance==null){
//                    instance=new Singleton2();
//                }
//        return instance;
//    }
//    方式三 双重校验锁
//    public static Singleton2 getInstance(){
//        if (instance==null){
//            synchronized (Singleton2.class){
//                if (instance==null){
//                    instance=new Singleton2();
//                }
//            }
//        }
//        return instance;
//    }
//    public void dosomething(){
//        System.out.println("调用成功");
//    }
}
